package com.itheima79.googleplay.adapter;

import java.util.ArrayList;

import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;

import com.itheima79.googleplay.holder.BaseHolder;
import com.itheima79.googleplay.holder.CategoryInfoHolder;
import com.itheima79.googleplay.holder.CategoryTitleHolder;

public class CategoryAdapter extends BasicAdapter<Object>{

	public CategoryAdapter(ArrayList<Object> list) {
		super(list);
	}
	
	//1.定义条目的类型
	public final int ITEM_TITLE = 0;//title类型的条目
	public final int ITEM_INFO = 1;//info类型的条目
	
	/**
	 * 返回条目类型的总数
	 */
	@Override
	public int getViewTypeCount() {
		return 2;
	}
	/**
	 * 返回指定的position的条目是什么类型的
	 */
	@Override
	public int getItemViewType(int position) {
		//通过指定position的数据类型来判断条目的类型
		Object object = list.get(position);
		if(object instanceof String){
			//说明当前条目是title类型的
			return ITEM_TITLE;
		}else {
			//说明当前条目是info类型的
			return ITEM_INFO;
		}
//		return super.getItemViewType(position);
	}
	
	@Override
	protected BaseHolder<Object> getHolder(int position) {
		BaseHolder<Object> holder = null;
		int itemViewType = getItemViewType(position);
		switch (itemViewType) {
		case ITEM_TITLE:
			//加载title类型的布局
			//绑定数据到title布局
			//但是由于holder封装了加载布局和绑定数据的操作，所以现在只需要根据不同的条目类型
			//返回不同的holder
			holder = new CategoryTitleHolder();
			break;
		case ITEM_INFO:
			//加载info类型的布局
			//绑定数据到info布局
			holder = new CategoryInfoHolder();
			break;
		}
		return holder;
	}

}
